using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;

namespace XnaDevRu.ContentBuilder.Framework
{
	/// <summary>
	/// Represents options of the ContentProject.
	/// </summary>
    public class ContentProjectOptions
    {
		private string _intermediateDirectory;
		private string _outputDirectory;
		private string _rootDirectory;
		private string _targetPlatform;

		/// <summary>
		/// Gets or sets project's intermediate directory.
		/// </summary>
		[Category("Project Options")]
		[DisplayName("Intermediate Directory")]
		[Description("Location where intermediate files will be stored.")]
		[EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
		public string IntermediateDirectory { get { return _intermediateDirectory; } set { _intermediateDirectory = value; } }

		/// <summary>
		/// Gets or sets project's output directory.
		/// </summary>
		[Category("Project Options")]
		[DisplayName("Output Directory")]
		[Description("Location where output content files will be stored.")]
		[EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
		public string OutputDirectory { get { return _outputDirectory; } set { _outputDirectory = value; } }

		/// <summary>
		/// Gets or sets project's root directory.
		/// </summary>
		[Category("Project Options")]
		[DisplayName("Root Directory")]
		[Description("Location of the root folder containing source content files.")]
		[EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
		public string RootDirectory { get { return _rootDirectory; } set { _rootDirectory = value; } }

		/// <summary>
		/// Gets or sets project's target platform.
		/// </summary>
		[Category("Project Options")]
		[DisplayName("Target Platform")]
		[Description("Target platform of the output files.")]
		[TypeConverter(typeof(TargetPlatformConverter))]
		public string TargetPlatform { get { return _targetPlatform; } set { _targetPlatform = value; } }
    }
}
